comparison between hardware and software